/*******************************************************************************
* 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
* 版本：v1.0.0<br>
* 文件：AppExpermentalResultComponent.js<br>
* 日期：2017年9月29日<br>
* 作者: 李伟利<br>
* 功能：应用程序组件对象基类，定义组件对象基本接口<br>
* 
* 修改记录：<br>
* 日期 描述 更新功能<br>
******************************************************************************/
 
window.makeNamespace(window,"Rainier.UI.V2");

Rainier.UI.V2.AppExpermentalResulComponent = Rainier.UI.V2.AppViewComponent.extend({

    NAME : "Rainier.UI.V2.AppExpermentalResultComponent",

    /**
     * 函数名称：init<br>
     * 函数功能：构造函数<br>
     * 参数信息：app : 应用程序对象，
     * 异常信息：无<br>
     */
    init : function(app,parentContainer){
        this._super(app,parentContainer);
        this.accordionSupport = null;
        this.expermentalResult = $("<div class='app-expermentResult'></div>");
    },

    /**
     * 函数名称：createView<br>
     * 函数功能：根据参数信息： 是否存在容器元素，进行不同形式的布局设置<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    createView : function(){
        if(this.parentContainer){
            this.expermentalResult.appendTo(this.parentContainer);
        }else{
            this.expermentalResult.appendTo($("body"));
        }
        $("body").append(this.expermentalResult);
        this.accordionSupport = new Rainier.UI.V2.UICompositeAccordionSupport(this.expermentalResult,{fit:true,border:false});//,multiple:true
        this.createViewPage(this.accordionSupport);

    },

     /**
     * 函数名称：resize<br>
     * 函数功能：重置结果栏大小<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    resize : function(){
        this.accordionSupport.resize();
    },

    /**
     * 函数名称：createViewDom<br>
     * 函数功能：创建当前组件的dom元素<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    createViewDom : function(){
        throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
    },

    /**
     * 函数名称：createViewPage<br>
     * 函数功能：创建当前组件的viewpage<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    createViewPage : function(accordionSupport){
        var resultAccordion   = new Rainier.UI.V2.UICompositeAccordion(accordionSupport,{title:'图形显示',selected:true});
        var variableAccordion = new Rainier.UI.V2.UICompositeAccordion(accordionSupport,{title:'实验变量',height:270,width:'100%',selected:false});
        var consoleAccordion  = new Rainier.UI.V2.UICompositeAccordion(accordionSupport,{title:'程序输出',selected:false});

        this.resultPanel = new Rainier.UI.V2.UICompositePanel(resultAccordion,{fit:true,border:false});

        this.variablePanel  = new Rainier.UI.V2.UICompositePanel(variableAccordion,{fit:true,border:false});
        this.variableTable  = new Rainier.UI.V2.VariableTableViewPage();
        
        this.consolePanel   = new Rainier.UI.V2.UICompositePanel(consoleAccordion,{fit:true,border:false});
        this.consoleTextBox = new Rainier.UI.V2.UICompositeTextBox(this.consolePanel,{fit:true,multiline:true,readonly:true});
    },

    /**
     * 函数名称：clear<br>
     * 函数功能：清空上次数据<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    clear : function(){
        this.variablePanel.clear();
        this.resultPanel.clear();
        this.consoleTextBox.clear();
    },

    /**
     * 函数名称：createView<br>
     * 函数功能：对组件中的控制元素，进行事件绑定，此处，调用context内部的功能函数<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    bindCallBackFn : function(thisDom,$idName){
               
    },

    /**
     * 函数名称：enableComponent<br>
     * 函数功能：启用组件内部功能<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    enableComponent : function(){
        throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
    },

    /**
     * 函数名称：disableComponent<br>
     * 函数功能：禁用组件功能<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    disableComponent : function(){
        throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
    },

    /**
     * 函数名称：clickToShow<br>
     * 函数功能：点击元件库控制按钮去显示元件库<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    clickToShow : function(){
        this.expermentalResult.css("display","block");
        this.resize();
    },

    /**
     * 函数名称：clickToHide<br>
     * 函数功能：点击元件库控制按钮去隐藏元件库<br>
     * 参数输入：无<br>
     * 函数返回：无<br>
     * 异常信息：无<br>
     */
    clickTohide : function(flag){

        this.expermentalResult.css("display","none");           

    },
});